'''
部分类的专有方法
__init__():构造函数，生成对象时调用
__del__():析构函数，释放对象时调用
__add__():加对象
__mul__():乘对象
__cmp__():比较对象
__repr__():打印，转换
__setitem__():按照索引赋值
__getitem__():按照索引获取值
__len__():获得长度

#使用__init__()方法对对象的属性赋初值

class book:
    __author=''
    __name=''
    __page=0
    price=0
    __press=''
    def __check(self,item):  #定义__check()私有方法
        if item=='':
            return 0
        else:
            return 1
    def show(self):
        if self.__check(self.__author):#判断__author是否为空
            print(self.__author)
        else:
            print('NO value')
        if self.__check(self.__name):
            print(self.__name)
        else:
            print('No values')
    def setname(self,name):#定义setname方法
        self.__name=name
    def __init__(self,author,name):#使用__init__()方法为__author()及__name属性赋值
        self.__author=author
        self.__name=name
        
##调用函数
a=book('TOM','A Wonderful Book')#实例化，为author及name赋予初始值
a.show()

a.setname('About jack')#重新设置__name私有属性
a.show()

#类的继承
#1.使用继承
#创建一个新类

class student(book):
    classs=''
    __grade=''
    __sname=''
    def showinfo(self):#定义一个新的showinfo（）方法
        self.show()#此处仅调用book类的show()方法

b=student('Jack','BIg Book')#student类继承了book类的__init__()方法
b.showinfo()#调用student类的showinfo（）方法

b.show()#调用book类的show()方法
#若尝试使用父类的私有属性或私有方法，则将会导致错误，
class student（book):
    def showall(self):
        #此处调用了父类的__check()方法，且使用了父亲的__name私有属性
        if self.__check(self.__name):
            print(self.__name)
        else:
            print('NO value')

c=student('TOM','Big Book')
c.showall()#会报错
'''